Apache HTTP Server から nginx への乗り換え
動的機能の対応
CGI や PHP などの動的機能の利用を考える
nginx をリバースプロキシとして利用し、バックエンドのサーバ(upstream ディレクティブ指定) に動的機能を任せる形
SSI は対応しているがすべての SSI コマンドには対応していない コンテンツのストレージ
コンテンツキャッシュ機能において、キャッシュのストレージはディスクのみ
Apache 2.4 で言う mod_cache_disk のみが可能
tmpfs
キャッシュをオンメモリで処理したい場合には、キャッシュの保存場所を tmpfs にする
CentOS 7
/dev/shm
allow, deny でホスト名の指定
nginx の allow ディレクティブや deny ディレクティブには、ホスト名での指定ができない
コンテンツレベルでの設定上書き
nginx では .htaccess が無いので、サーバ管理者の作業(nginx の reload 等) が必要
ログフォーマットの互換性
log_format ディレクティブで任意に設定できるため、Apache と揃えることが可能
%D (応答時間) の単位に注意
nginx($request_time) の単位はミリ秒
Apache($D) はマイクロ秒
CPU・メモリなどのリソース、キャパシティ
静的コンテンツ配信のサーバを Apache から nginx に変更すると、nginx のイベントドリブン実装が影響し、CPU 利用率、メモリ使用量は少なくなる
SSL 中間証明書の設定方法
nginx では SSL 証明書の下部に中間証明書を追記する
Apache 設定ファイルの秘匿
nginx に移行した際に、.ht〜 ファイル(.htaccess や .htpasswd) が外部から意図せずアクセスできる状態にならないように設定を入れる
code:conf
location ~* \.ht.*$ {
deny all;
}
mod_rewrite の書き換え
ログローテーション
Apache で rotatelogs プログラムを使っている場合は、ログローテーションのための外部設定は必要ないけど、nginx にはない rpm でインストールすると logrotate の設定が /etc/logrotate.d/nginx に入る